package com.epkursant.message;

import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;

import org.hibernate.SQLQuery;

import com.ep.general.GeneralMdt;
import com.ep.general.RodzajUzytkownika;

public class KomunikatMdt extends GeneralMdt {

	@SuppressWarnings("unchecked")
	public List<KomunikatOdbiorcaForm> getListOdbiorcy() {
		List<KomunikatOdbiorcaForm> result = new ArrayList<KomunikatOdbiorcaForm>();

		StringBuilder sql = new StringBuilder();
		sql.append(" SELECT i.id, i.imie, i.nazwisko, 2 as rodzaj FROM i_d_instruktor i");
		sql.append(" UNION");
		sql.append(" SELECT a.id, a.imie, a.nazwisko, 1 as rodzaj FROM a_d_administrator a;");

		getSession().beginTransaction();
		SQLQuery query = getSession().createSQLQuery(sql.toString());
		List<Object[]> list = query.list();
		getSession().getTransaction().commit();

		KomunikatOdbiorcaForm form = null;
		for (Object[] item : list) {
			form = new KomunikatOdbiorcaForm();
			form.setId((Integer) item[0]);
			form.setImie((String) item[1]);
			form.setNazwisko((String) item[2]);
			form.setRodzaj(RodzajUzytkownika.valueOf(((BigInteger) item[3])
					.intValue()));

			result.add(form);
		}

		return result;
	}
}
